package main

/**
gRPC 客户端
*/
import (
	"context"
	"fmt"
	"google.golang.org/grpc"
	"log"
	pb "manage-service/proto"
)

// 监听Ip端口
const (
	Ip   = "127.0.0.1"
	Port = 9001
)

func main() {
	// 连接grpc服务器
	conn, err := grpc.Dial(fmt.Sprintf("%s:%d", Ip, Port), grpc.WithInsecure())
	if err != nil {
		log.Fatalf("did not connect: %v", err)
		return
	}
	// 延迟关闭连接
	defer conn.Close()
	// 初始化 ManageService 客户端
	//我们在本地创建了一个client，然后直接调用我们之前定义好的 GetThreshold 方法
	client := pb.NewManageServiceClient(conn)
	// 参数二：创建请求参数
	respList, err := client.GetThreshold(context.Background(), &pb.ManageReq{Ip: "192.168.1.5", Metric: "mem_rate"})
	if err != nil {
		log.Fatalf("client.GetThreshold err: %v", err)
	}
	// 打印服务的返回的消息，返回值类型：[]*ManageResp，共有三条数据
	log.Printf("resp: %v\n", respList.GetRespList())
	// 获得各个字段
	for _, resp := range respList.GetRespList() {
		fmt.Printf("Ip: %v, Metric: %v, Threshold: %v, alertType: %v\n", resp.Ip, resp.Metric, resp.Threshold, resp.AlertType)
	}

}
